package com.vegetable.modules.entity.outbound.vo;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vegetable.modules.entity.outbound.SalesOut;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 销售出库分页查询结果VO
 * 包含分页数据和统计信息
 *
 * @author wangruijie
 * @since 2025-10-19
 */
@Data
@ApiModel(value = "销售出库分页查询结果", description = "包含分页数据和统计信息")
public class SalesOutPageVO {

    @ApiModelProperty(value = "分页数据")
    private IPage<SalesOut> pageData;

    @ApiModelProperty(value = "总订单数")
    private Long totalOrders;

    @ApiModelProperty(value = "总数量")
    private Integer totalNumber;

    @ApiModelProperty(value = "总重量")
    private BigDecimal totalWeight;

    @ApiModelProperty(value = "总金额")
    private BigDecimal totalMoney;

    @ApiModelProperty(value = "总成本")
    private BigDecimal totalCost;

    @ApiModelProperty(value = "总利润")
    private BigDecimal totalProfit;

    @ApiModelProperty(value = "总其他费用")
    private BigDecimal totalOrderCost;

    @ApiModelProperty(value = "总已回款金额")
    private BigDecimal totalReceivedMoney;

    @ApiModelProperty(value = "总未对账金额")
    private BigDecimal totalVerifyMonet;

    @ApiModelProperty(value = "按费用类型分组的费用金额，key为费用类型名称，value为该类型的总金额")
    private java.util.Map<String, BigDecimal> costByType;

    @ApiModelProperty(value = "按日期分组展示的总金额")
    private java.util.Map<String, BigDecimal> totalMoneyByDate;
}
